<template>
  <div class="songs-container">
    <div class="tab-bar">
      <span class="item" :class="{active:tag==0}" @click="tag=0">全部</span>
      <span class="item" :class="{active:tag==7}" @click="tag=7">华语</span>
      <span class="item" :class="{active:tag==96}" @click="tag=96">欧美</span>
      <span class="item" :class="{active:tag==8}" @click="tag=8">日本</span>
      <span class="item" :class="{active:tag==16}" @click="tag=16">韩国</span>
    </div>
    <!-- 底部的table -->
    <table class="el-table playlit-table">
      <thead>
        <th></th>
        <th></th>
        <th>音乐标题</th>
        <th>歌手</th>
        <th>专辑</th>
        <th>时长</th>
      </thead>
      <tbody>
        <tr class="el-table__row" v-for="(item,i) in lists" :key="i">
          <td>{{i+1}}</td>
          <td>
            <div class="img-wrap">
              <img :src="item.album.picUrl" alt />
              <span class="iconfont icon-play" @click="playMusic(item.id)"></span>
            </div>
          </td>
          <td>
            <div class="song-wrap">
              <div class="name-wrap">
                <span>{{item.name}}</span>
                <span class="iconfont icon-mv"></span>
              </div>
              <span></span>
            </div>
          </td>
          <td>{{item.album.artists['0'].name}}</td>
          <td>{{item.album.name}}</td>
          <td>{{item.duration}}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>
// import axios from "axios";
import { mapMutations, mapGetters } from "vuex";
export default {
  name: "songs",
  data() {
    return {
      // 歌曲列表
      lists: [],
      // 分类
      tag: "0",
    };
  },
  watch: {
    tag() {
      this.getList();
    },
  },
  computed:{
    ...mapGetters(['isPlay'])
  },
  methods: {
    ...mapMutations(['setUrl','setIsPlay']),
    getList() {
      // 歌曲列表
      this.$http
        .get(
          "https://autumnfish.cn/top/song",

          {
            params: {
              type: this.tag,
            },
          }
        )
        .then((res) => {
          this.lists = res.data.data;
          for (let i = 0; i < this.lists.length; i++) {
            let duration = this.lists[i].duration;
            let min = parseInt(duration / 1000 / 60);
            if (min < 10) {
              min = "0" + min;
            }
            let sec = parseInt((duration / 1000) % 60);
            if (sec < 10) {
              sec = "0" + sec;
            }
            this.lists[i].duration = `${min}:${sec}`;
          }
        });
    },
    // 播放歌曲
    playMusic(id) {
      this.$http
        .get(
          "https://autumnfish.cn/song/url",

          { params: { id } }
        )
        .then((res) => {
          let url = res.data.data[0].url;
          // this.$parent.musicUrl = url;
           this.setUrl(url);
        if (this.isPlay) {
          this.setIsPlay(false);
        } else {
          this.setIsPlay(true);
        }
        });
    },
  },
  created() {
    this.getList();
  },
};
</script>

<style >
</style>
